package com.dms.system.mapper;

import java.util.List;
import com.dms.system.domain.SysRecord;
import com.dms.system.domain.dto.SysPlantRecordDTO;

/**
 * 巡检记录，巡检人员上传现场数据Mapper接口
 * 
 * @author ruoyi
 * @date 2021-03-27
 */
public interface SysRecordMapper 
{
    /**
     * 查询巡检记录，巡检人员上传现场数据
     * 
     * @param id 巡检记录，巡检人员上传现场数据ID
     * @return 巡检记录，巡检人员上传现场数据
     */
    public SysRecord selectSysRecordById(Long id);

    /**
     * 查询巡检记录，巡检人员上传现场数据列表
     * 
     * @param sysRecord 巡检记录，巡检人员上传现场数据
     * @return 巡检记录，巡检人员上传现场数据集合
     */
    public List<SysRecord> selectSysRecordList(SysRecord sysRecord);

    /**
     * 根据plantID查询某个时间之前的所有记录
     * @param sysRecord
     * @return SysPlantRecordDTO对象列表
     * @author xlong_zhu
     * @date 2021/4/7
     */
    public List<SysPlantRecordDTO> selectSysPlantRecordDTOListPerDay(SysRecord sysRecord);

    /**
     * 查询某个时分所有设备的数据记录
     * @param sysRecord
     * @return
     * @author xlong_zhu
     * @date 2021/4/8
     * */
    public abstract List<SysPlantRecordDTO> selectSysPlantRecordDTOListPerMinute(SysRecord sysRecord);

    /**
     * 新增巡检记录，巡检人员上传现场数据
     * 
     * @param sysRecord 巡检记录，巡检人员上传现场数据
     * @return 结果
     */
    public int insertSysRecord(SysRecord sysRecord);

    /**
     * 修改巡检记录，巡检人员上传现场数据
     * 
     * @param sysRecord 巡检记录，巡检人员上传现场数据
     * @return 结果
     */
    public int updateSysRecord(SysRecord sysRecord);

    /**
     * 删除巡检记录，巡检人员上传现场数据
     * 
     * @param id 巡检记录，巡检人员上传现场数据ID
     * @return 结果
     */
    public int deleteSysRecordById(Long id);

    /**
     * 批量删除巡检记录，巡检人员上传现场数据
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysRecordByIds(String[] ids);

    /**
     * 模拟定时向数据库中插入巡检记录
     * @param sysRecord
     * @return 结果
     * @author xlong_zhu
     * @date 2021/4/7
     */
    public abstract int emulateInsertRecord(List<SysRecord> sysRecord);
}
